﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DAO;




//FALTA:
    //VALIDAR EL TAMAÑO MAXIMO DE LAS CADENAS DE ENTRADA


namespace TPDiseño.Interfaces
{
    public partial class AltaP : Form
    {
        List<TPDiseño.Clases_de_Entidad.Empresa> empresas;
        TPDiseño.Clases_de_Entidad.Empresa EmpresaSeleccionada;
        List<TPDiseño.Clases_de_Entidad.Competencia> competencias;
        Clases_de_Control.Gestor_de_Puesto gestorP = new Clases_de_Control.Gestor_de_Puesto();
        Clases_de_Control.Gestor_Competencia gestorC = new Clases_de_Control.Gestor_Competencia();
        public AltaP()
        {
            InitializeComponent();

        }

        private void label5_Click(object sender, EventArgs e)
        {

        }

        private void AltaP_Load(object sender, EventArgs e)
        {
            Cargar_Pantalla();
        }

        private void Cargar_Pantalla()
        {
            competencias = gestorC.buscar();
            empresas = gestorP.buscarEmp();

            //Obtener de la base las competencias, y las empresas
            empresas.Sort(delegate(TPDiseño.Clases_de_Entidad.Empresa e1, TPDiseño.Clases_de_Entidad.Empresa e2) { return e1._nombre.CompareTo(e2._nombre); });
            competencias.Sort(delegate(TPDiseño.Clases_de_Entidad.Competencia c1, TPDiseño.Clases_de_Entidad.Competencia c2) { return c1._nombre.CompareTo(c2._nombre); });
            ListBox_Competencia.Items.Clear();
            comboBox_empresa.Items.Clear();
            foreach (TPDiseño.Clases_de_Entidad.Competencia compe in competencias)
            {
                ListBox_Competencia.Items.Add(compe._nombre);
            }
            foreach (TPDiseño.Clases_de_Entidad.Empresa emp in empresas)
            {
                comboBox_empresa.Items.Add(emp._nombre);
            }
        }


        private void Button3_Click(object sender, EventArgs e)
        {
            this.Close();
            
            GestionarP gp = new GestionarP();
            gp.MdiParent = Interfaces.Principal.ActiveForm;
            gp.WindowState = FormWindowState.Maximized;
            gp.Show();
            
        }

        private void label6_Click(object sender, EventArgs e)
        {

        }

        private void Button_Aceptar_Click(object sender, EventArgs e)
        {
            int flag = 1;
            DialogResult result;
            List<string> listaVacio;

            //Validar la interfaz
            listaVacio= ValidarInterfaz();
            if (listaVacio.Count==0)
            {


                //Crea DTO.col
                List<TPDiseño.DTO_s.DTOCompPon> DTOCompPonCol = new List<TPDiseño.DTO_s.DTOCompPon>();
                if (DataGridView1.Rows.Count != 0)
                {

                    foreach (DataGridViewRow fila in DataGridView1.Rows)
                    {
                        try
                        {
                            if (Convert.ToInt32(fila.Cells[1].Value) >= 0 && Convert.ToInt32(fila.Cells[1].Value) <= 10)
                            {
                                //Instancia un dto por cada fila de la grilla
                                TPDiseño.DTO_s.DTOCompPon CompPond = new TPDiseño.DTO_s.DTOCompPon();
                                foreach (TPDiseño.Clases_de_Entidad.Competencia Comp in competencias)
                                {
                                    //Busca la competencia que contiene el nombre especificado y la asigna al dto
                                    if (string.Equals(Comp._nombre, fila.Cells[0].Value))
                                    {
                                        CompPond._competencia = Comp;
                                    }
                                }
                                //Setea la ponderacion al dto
                                CompPond._ponderacion = Convert.ToInt32(fila.Cells[1].Value);
                                //Agrega el dto a la col
                                DTOCompPonCol.Add(CompPond);
                            }
                            else
                            {
                                MessageBox.Show("PONDERACIÓN INVÁLIDA, SOLO PUEDEN SER NÚMEROS DE 0 A 10", "ATENCIÓN", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                flag = 0;
                            }
                            if (fila.Cells[1].Value == null)
                            {
                                MessageBox.Show("EL CAMPO PONDERACIÓN NO PUEDE ESTAR VACÍO", "ATENCIÓN", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                flag = 0;
                                break;
                            }
                       
                        }
                        catch (FormatException exe)
                        {
                            MessageBox.Show("PONDERACIÓN INVÁLIDA, SOLO PUEDEN SER NÚMEROS DE 0 A 10", "ATENCIÓN", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            flag = 0;
                            break;
                        }
                       
                    }
                }
                else
                {
                    MessageBox.Show("EL PUESTO DEBE ESTAR ASOCIADO AL MENOS A UNA COMPETENCIA", "ATENCIÓN", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    flag = 0;
                }

    



                //Llama al metodo SelEmpresa por cada empresa de la coleccion
                if (flag == 1)
                {

   // ------------------------------------------------SE PUEDE AGREGAR EL PUESTO ----------------------------------


                    empresas.ForEach(SelEmpresa);
                    //Llama al metodo nuevo del gestor de puestos
                    try
                    {
                        gestorP.nuevo(TextBox_cod.Text, TextBox_puesto.Text, TextBox_descripcion.Text, EmpresaSeleccionada, DTOCompPonCol);
                        result = MessageBox.Show("EL PUESTO FUE AGREGADO CORRECTAMENTE, ¿DESEA AGREGAR OTRO?", "", MessageBoxButtons.YesNo, MessageBoxIcon.None);
                        if (result == System.Windows.Forms.DialogResult.Yes)
                        {
                            TextBox_cod.Text = "";
                            TextBox_descripcion.Text = "";
                            TextBox_puesto.Text = "";
                            comboBox_empresa.Text = "";
                            Cargar_Pantalla();
                            DataGridView1.Rows.Clear();
                            TextBox_cod.Focus();
                            pictureBoxCod.Visible = false;
                            pictureBoxDesc.Visible = false;
                            pictureBoxPuesto.Visible = false;
                            panel1.Visible = false;



                        }
                        else
                        {
                            this.Close();

                            GestionarP gp = new GestionarP();
                            gp.MdiParent = Interfaces.Principal.ActiveForm;
                            gp.WindowState = FormWindowState.Maximized;
                            gp.Show();
            
                        }
                    }
                    catch (System.Data.SqlClient.SqlException ex)
                    {
                        MessageBox.Show("El PUESTO YA EXISTE", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                }
            }
            else
            {
                string mensaje=" ";
                foreach (string msg in listaVacio)
                {
                    mensaje = mensaje + msg + " ";
                }
                if (listaVacio.Count == 1)
                {
                    MessageBox.Show("El campo" + mensaje + " es inválido o está vacío", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                else
                {
                    MessageBox.Show("Los campos:" + mensaje + "son inválidos o estan vacíos", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                }
            }
        }
        private void SelEmpresa(TPDiseño.Clases_de_Entidad.Empresa emp)
        {
            //Compara si la empresa entrante coincide con el nombre seleccionado en el combo
            if (comboBox_empresa.Text == emp._nombre)
                EmpresaSeleccionada = emp;

        }
        private List<string> ValidarInterfaz()
        {
            List<string> listaVacio = new List<string>();
            //Falta terminar validacion
            if (TextBox_cod.Text == "" || pictureBoxCod.Tag == "0")
                listaVacio.Add("Código");

            if (comboBox_empresa.Text == "")
                listaVacio.Add("Empresa");
            if (TextBox_puesto.Text == "" || pictureBoxPuesto.Tag=="0")
                listaVacio.Add("Puesto");
            if(TextBox_descripcion.Text == "" || pictureBoxDesc.Tag=="0") 
                listaVacio.Add("Descripción");
            return listaVacio;

        }

        private void TextBox_cod_TextChanged(object sender, EventArgs e)
        {
            pictureBoxCod.Visible = true;
            panel1.Visible = true;
           
            //Validacion de Longitud y de Campo Obligatorio
            if (TextBox_cod.TextLength == 4)
            {

                //Setea los colores de la legenda y carga las imagenes
                label_err_long.ForeColor = System.Drawing.Color.LimeGreen;
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                panel1.Tag = "1";

            }
            //Campo Codigo Vacio
            else if (TextBox_cod.TextLength == 0)
            {
                //Setea los colores de la legenda y carga las imagenes
                label_err_obli.ForeColor = System.Drawing.Color.Red;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }
            else
            {
                //Setea los colores de la legenda y carga las imagenes
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                
                label_err_long.ForeColor = System.Drawing.Color.Red;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }
            
            //Imagen de validado o error!
            if (panel1.Tag == "0")
            {
                pictureBoxCod.Image = TPDiseño.Properties.Resources.form_icon_error;
                pictureBoxCod.Tag = "0";
            }
            else
            {
                pictureBoxCod.Image = TPDiseño.Properties.Resources.form_icon_valid;
                pictureBoxCod.Tag = "1";
            }
        }

        private void TextBox_cod_KeyPress(object sender, KeyPressEventArgs e)
        {
          //No deja escribir si la tecla presionada es letra o simbolos
            panel1.Visible = true;
            label_err_Cod.Visible = false;
            label_err_extra.Visible = false;
            if (Char.IsDigit(e.KeyChar))
            {
                if (TextBox_cod.TextLength == 4)
                {
                    e.Handled = true;
                }
                else
                {
                    e.Handled = false;
                    label_err_Cod.Visible = false;
                    label_err_extra.Visible = false;
                }

            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = true;

                if (TextBox_cod.TextLength != 4)
                {
                    label_err_extra.Visible = true;
                    label_err_extra.ForeColor = System.Drawing.Color.Red;
                }
            }
            else if (Char.IsControl(e.KeyChar))
                e.Handled = false;
            else
            {
                e.Handled = true;
                if (TextBox_cod.TextLength != 4)
                {
                    label_err_Cod.Visible = true;
                    label_err_Cod.ForeColor = System.Drawing.Color.Red;
                }

            }



        }

        private void TextBox_puesto_TextChanged(object sender, EventArgs e)
        {
           
            pictureBoxPuesto.Visible = true;
            panel1.Visible = true;
           //Muy parecido al textchanged de cod_puesto

            //Validacion de Longitud y de Campo Obligatorio
            if (TextBox_puesto.TextLength > 1)
            {
                label_err_long.ForeColor = System.Drawing.Color.LimeGreen;
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                panel1.Tag = "1";

            }
            else if (TextBox_puesto.TextLength == 0)
            {
                label_err_obli.ForeColor = System.Drawing.Color.Red;
                label_err_long.ForeColor = System.Drawing.Color.Red;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }
            else
            {
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                label_err_long.ForeColor = System.Drawing.Color.Red;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }
            if (panel1.Tag == "0")
            {
                pictureBoxPuesto.Image = TPDiseño.Properties.Resources.form_icon_error;
                pictureBoxPuesto.Tag = "0";
            }
            else
            {
                pictureBoxPuesto.Image = TPDiseño.Properties.Resources.form_icon_valid;
                pictureBoxPuesto.Tag = "1";
            }
        }


        private void label7_Click(object sender, EventArgs e)
        {

        }

        private void TextBox_cod_Enter(object sender, EventArgs e)
        {
            //Cadenas de texto de Validacion

            if (TextBox_cod.TextLength == 4)
            {
                label_err_long.ForeColor = System.Drawing.Color.LimeGreen;
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                panel1.Tag = "1";

            }
            else if (TextBox_cod.TextLength == 0)
            {
                label_err_obli.ForeColor = System.Drawing.Color.Red;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }
            else
            {
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;

                label_err_long.ForeColor = System.Drawing.Color.Red;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }
            label_err_Cod.Text = "Debe ingresar solamente Números";
            label_err_long.Text = "Ha de contener exactamente 4 dígitos";
            label_err_obli.Text = "El campo es obligatorio";
            label_err_extra.Text = "No debe contener barras o espacios";
        }

        private void TextBox_puesto_Enter(object sender, EventArgs e)
        {
            //Cadenas de texto de Validacion

            if (TextBox_puesto.TextLength > 1)
            {
                label_err_long.ForeColor = System.Drawing.Color.LimeGreen;
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                panel1.Tag = "1";

            }
            else if (TextBox_puesto.TextLength == 0)
            {
                label_err_obli.ForeColor = System.Drawing.Color.Red;
                label_err_long.ForeColor = System.Drawing.Color.Red;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }
            else
            {
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                label_err_long.ForeColor = System.Drawing.Color.Red;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }
            label_err_long.Text = "Ha de contener por lo menos 2 dígitos";
            label_err_obli.Text = "El campo es obligatorio";

        }

        private void TextBox_descripcion_TextChanged(object sender, EventArgs e)
        {
          
            pictureBoxDesc.Visible = true;
            panel1.Visible = true;
            //Muy parecido al textchanged de cod_puesto
            //Validacion de Longitud y de Campo Obligatorio
            if (TextBox_descripcion.TextLength > 1)
            {
                label_err_long.ForeColor = System.Drawing.Color.LimeGreen;
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                panel1.Tag = "1";

            }
            else if (TextBox_descripcion.TextLength == 0)
            {
                label_err_obli.ForeColor = System.Drawing.Color.Red;
                label_err_long.ForeColor = System.Drawing.Color.Red;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }
            else
            {
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                label_err_long.ForeColor = System.Drawing.Color.Red;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }

            if (panel1.Tag == "0")
            {
                pictureBoxDesc.Image = TPDiseño.Properties.Resources.form_icon_error;
                pictureBoxDesc.Tag = "0";
            }
            else
            {
                pictureBoxDesc.Image = TPDiseño.Properties.Resources.form_icon_valid;
                pictureBoxDesc.Tag = "1";
            }

        }

        private void TextBox_descripcion_Enter(object sender, EventArgs e)
        {
            //Cadenas de texto de Validacion
            if (TextBox_descripcion.TextLength > 1)
            {
                label_err_long.ForeColor = System.Drawing.Color.LimeGreen;
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                panel1.Tag = "1";

            }
            else if (TextBox_descripcion.TextLength == 0)
            {
                label_err_obli.ForeColor = System.Drawing.Color.Red;
                label_err_long.ForeColor = System.Drawing.Color.Red;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }
            else
            {
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                label_err_long.ForeColor = System.Drawing.Color.Red;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }
            label_err_long.Text = "Ha de contener por lo menos 2 dígitos";
            label_err_obli.Text = "El campo es obligatorio";
        }

        private void TextBox_cod_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {

                if (this.GetNextControl(ActiveControl, true) != null)
                {
                    e.Handled = true;
                    this.GetNextControl(ActiveControl, true).Focus();

                }
            }
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {

        }

        private void TextBox_puesto_KeyDown(object sender, KeyEventArgs e)
        {
            //Tabulacion con enter
            if (e.KeyCode == Keys.Enter)
            {

                if (this.GetNextControl(ActiveControl, true) != null)
                {
                    e.Handled = true;
                    this.GetNextControl(ActiveControl, true).Focus();

                }
            }
        }

        private void TextBox_descripcion_KeyDown(object sender, KeyEventArgs e)
        {
            //Tabulacion con enter
            if (e.KeyCode == Keys.Enter)
            {

                if (this.GetNextControl(ActiveControl, true) != null)
                {
                    e.Handled = true;
                    this.GetNextControl(ActiveControl, true).Focus();

                }
            }
        }

       

        private void Button_Agregar(object sender, EventArgs e)
        {
            //Crea una lista de cadenas
            int fila,n;
            List<string> indice = new List<string>();
            //Pide el numero de filas de la grilla antes de agregar las nuevas
            fila = DataGridView1.RowCount;
            //Pide el numero de items seleccionados del ListBox
            n= ListBox_Competencia.SelectedItems.Count;
            //Agrega a la grilla n filas
            if (n!=0)
                DataGridView1.Rows.Add(n);

            //Recorre cada item seleccionado y lo setea en la grilla
            foreach (string competencia in ListBox_Competencia.SelectedItems)
            {


                indice.Add(competencia);
                DataGridView1[0, fila].Value = competencia;
                
                fila = fila + 1;
               
            }
            foreach (string competencia in indice)
            {
                //Borra cada item seleccionado
                ListBox_Competencia.Items.Remove(competencia);
            }
            
        }

        private void ListBox_Competencia_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void ListBox_Competencia_DoubleClick(object sender, EventArgs e)
        {
            Button1.PerformClick();
        }

        private void DataGridView1_ControlRemoved(object sender, ControlEventArgs e)
        {
            
        }

        private void DataGridView1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
        {
           

        }

        
        private void Button_Quitar_Click(object sender, EventArgs e)
        {
            //Borra el elemento de la grillay lo agrega en el listbox
            
            foreach (DataGridViewRow fila in DataGridView1.SelectedRows)
            {
                
                DataGridView1.Rows.Remove(fila);
            }
            ListBox_Competencia.Items.Clear();
            foreach (TPDiseño.Clases_de_Entidad.Competencia compe in competencias)
            {
                ListBox_Competencia.Items.Add(compe._nombre);
            }


            foreach (DataGridViewRow competencia in DataGridView1.Rows)
            {
             
                ListBox_Competencia.Items.Remove(competencia.Cells[0].Value);
               
            }
            
        }

        private void comboBox_empresa_SelectedIndexChanged(object sender, EventArgs e)
        {
           // if combo.valorseleccionado != null TILDE de lo contrario CRUZ
            
        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            //Crea una lista de cadenas
            int fila, n;
            List<string> indice = new List<string>();
            //Pide el numero de filas de la grilla antes de agregar las nuevas
            fila = DataGridView1.RowCount;
            //Pide el numero de items seleccionados del ListBox
            n = ListBox_Competencia.Items.Count;
            //Agrega a la grilla n filas
            if (n != 0)
                DataGridView1.Rows.Add(n);

            //Recorre cada item seleccionado y lo setea en la grilla
            foreach (string competencia in ListBox_Competencia.Items)
            {


                indice.Add(competencia);
                DataGridView1[0, fila].Value = competencia;

                fila = fila + 1;

            }
            foreach (string competencia in indice)
            {
                //Borra cada item seleccionado
                ListBox_Competencia.Items.Remove(competencia);
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {

            //Borra el elemento de la grillay lo agrega en el listbox
         /*   foreach (DataGridViewRow fila in DataGridView1.Rows)
            {
                DataGridView1.Rows.Remove(fila);
                ListBox_Competencia.Items.Add(fila.Cells[0].Value);
                
            }*/
            while (DataGridView1.Rows.Count != 0)
            {
                ListBox_Competencia.Items.Add(DataGridView1.Rows[0].Cells[0].Value);
                DataGridView1.Rows.Remove(DataGridView1.Rows[0]);
            }
            ListBox_Competencia.Items.Clear();
            foreach (TPDiseño.Clases_de_Entidad.Competencia compe in competencias)
            {
                ListBox_Competencia.Items.Add(compe._nombre);
            }
        }

        private void TextBox_cod_Leave(object sender, EventArgs e)
        {
            pictureBoxCod.Visible = true;
            panel1.Visible = true;
            if (TextBox_cod.TextLength == 4)
            {

                //Setea los colores de la legenda y carga las imagenes
                label_err_long.ForeColor = System.Drawing.Color.LimeGreen;
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                panel1.Tag = "1";

            }
            //Campo Codigo Vacio
            else if (TextBox_cod.TextLength == 0)
            {
                //Setea los colores de la legenda y carga las imagenes
                label_err_obli.ForeColor = System.Drawing.Color.Red;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }
            else
            {
                //Setea los colores de la legenda y carga las imagenes
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;

                label_err_long.ForeColor = System.Drawing.Color.Red;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }

            //Imagen de validado o error!
            if (panel1.Tag == "0")
            {
                pictureBoxCod.Image = TPDiseño.Properties.Resources.form_icon_error;
                pictureBoxCod.Tag = "0";
            }
            else
            {
                pictureBoxCod.Image = TPDiseño.Properties.Resources.form_icon_valid;
                pictureBoxCod.Tag = "1";
            }
        }

        private void TextBox_descripcion_Leave(object sender, EventArgs e)
        {
            pictureBoxDesc.Visible = true;
            panel1.Visible = true;
            if (TextBox_descripcion.TextLength > 1)
            {
                label_err_long.ForeColor = System.Drawing.Color.LimeGreen;
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                panel1.Tag = "1";

            }
            else if (TextBox_descripcion.TextLength == 0)
            {
                label_err_obli.ForeColor = System.Drawing.Color.Red;
                label_err_long.ForeColor = System.Drawing.Color.Red;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }
            else
            {
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                label_err_long.ForeColor = System.Drawing.Color.Red;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }

            if (panel1.Tag == "0")
            {
                pictureBoxDesc.Image = TPDiseño.Properties.Resources.form_icon_error;
                pictureBoxDesc.Tag = "0";
            }
            else
            {
                pictureBoxDesc.Image = TPDiseño.Properties.Resources.form_icon_valid;
                pictureBoxDesc.Tag = "1";
            }
        }

        private void TextBox_puesto_Leave(object sender, EventArgs e)
        {
            pictureBoxPuesto.Visible = true;
            panel1.Visible = true;
            if (TextBox_puesto.TextLength > 1)
            {
                label_err_long.ForeColor = System.Drawing.Color.LimeGreen;
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                panel1.Tag = "1";

            }
            else if (TextBox_puesto.TextLength == 0)
            {
                label_err_obli.ForeColor = System.Drawing.Color.Red;
                label_err_long.ForeColor = System.Drawing.Color.Red;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }
            else
            {
                label_err_obli.ForeColor = System.Drawing.Color.LimeGreen;
                label_err_long.ForeColor = System.Drawing.Color.Red;
                pictureBox_obli.Image = TPDiseño.Properties.Resources.tooltip_icon_valid;
                pictureBox_long.Image = TPDiseño.Properties.Resources.tooltip_icon_error;
                panel1.Tag = "0";
            }
            if (panel1.Tag == "0")
            {
                pictureBoxPuesto.Image = TPDiseño.Properties.Resources.form_icon_error;
                pictureBoxPuesto.Tag = "0";
            }
            else
            {
                pictureBoxPuesto.Image = TPDiseño.Properties.Resources.form_icon_valid;
                pictureBoxPuesto.Tag = "1";
            }
        }

     

    }
}

       
